#ifndef TRANS_DATA_H
#define TRANS_DATA_H

#include <QtCore>

// 变压器设备数据结构体
class CTransData
{
public:
    quint16 dbModbusAddr;
    quint16 devAddr;    // 设备地址(测量点)
    quint16 failedCount;// 通信失败次数
    quint16 connError;  // 通信是否正常    0 - 通信正常   1 - 通信故障

    quint8    bcdDevAddr[6]; // 设备地址(电表SN,BCD码)
    quint16   devIndex;      // 电表索引号
    float     curFactor;     // 电表电流系数
    float     volFactor;     // 电表电压系数

    quint8  resetDataFlag;   // 是否需要重置数据  1:需要，0和其他值:不需要
    quint16 isPauseReading;  // 是否暂停读取 1:暂停, 其他值:不暂停

    float positiveYgEnergy; // 正向有功总电能, 单位:kWh 标识码:9010 数据格式:XXXXXX.XX 数据长度:4
    float reverseYgEnergy;  // 反向有功总电能, 单位:kWh 标识码:9020 数据格式:XXXXXX.XX 数据长度:4
    float positiveWgEnergy; // 正向无功总电能, 单位:kvarh 标识码:9110 数据格式:XXXXXX.XX 数据长度:4
    float reverseWgEnergy;  // 反向无功总电能, 单位:kvarh 标识码:9120 数据格式:XXXXXX.XX 数据长度:4
    float ABLineVol;	    // AB线电压,单位:V
    float BCLineVol;	    // BC线电压,单位:V
    float CALineVol;	    // CA线电压,单位:V
    float AXiangVol;		// A相电压,单位:V,精度:1V 标识码:B611 数据格式:XXX 数据长度:2
    float BXiangVol;		// B相电压,单位:V,精度:1V 标识码:B612 数据格式:XXX 数据长度:2
    float CXiangVol;		// C相电压,单位:V,精度:1V 标识码:B613 数据格式:XXX 数据长度:2
    float AXiangCur;		// A相电流,单位:A,精度:0.01A 标识码:B621 数据格式:XX.XX 数据长度:2
    float BXiangCur;		// B相电流,单位:A,精度:0.01A 标识码:B622 数据格式:XX.XX 数据长度:2
    float CXiangCur;		// C相电流,单位:A,精度:0.01A 标识码:B623 数据格式:XX.XX 数据长度:2
    float zxxCur;           // 中性线电流

    float totalYgPower;	    // 瞬时有功功率,单位:kW,精度:0.0001kW 标识码:B630 数据格式:XX.XXXX 数据长度:3
    float AXiangYgPower;	// A相有功功率, 单位:kW,精度:0.0001kW 标识码:B631 数据格式:XX.XXXX 数据长度:3
    float BXiangYgPower;	// B相有功功率, 单位:kW,精度:0.0001kW 标识码:B632 数据格式:XX.XXXX 数据长度:3
    float CXiangYgPower;	// C相有功功率, 单位:kW,精度:0.0001kW 标识码:B633 数据格式:XX.XXXX 数据长度:3
    float positiveYgLimit;  // 正向有功功率上限值, 单位:kW,精度:0.01kW 标识码:B634 数据格式:XX.XX 数据长度:2
    float reverseYgLimit;   // 反向有功功率上限值, 单位:kW,精度:0.01kW 标识码:B635 数据格式:XX.XX 数据长度:2

    float totalWgPower;	    // 瞬时无功功率,单位:kW,精度:0.01kW 标识码:B640 数据格式:XX.XX 数据长度:2
    float AXiangWgPower;	// A相无功功率, 单位:kW,精度:0.01kW 标识码:B640 数据格式:XX.XX 数据长度:2
    float BXiangWgPower;	// B相无功功率, 单位:kW,精度:0.01kW 标识码:B640 数据格式:XX.XX 数据长度:2
    float CXiangWgPower;	// C相无功功率, 单位:kW,精度:0.01kW 标识码:B640 数据格式:XX.XX 数据长度:2

    float totalPowerFactor;	// 总功率因数,单位:?o,精度:0.001 标识码:B650 数据格式:X.XXX 数据长度:2
    float AXiangPowerFactor;// A相功率因数,单位:?o,精度:0.001 标识码:B650 数据格式:X.XXX 数据长度:2
    float BXiangPowerFactor;// B相功率因数,单位:?o,精度:0.001 标识码:B650 数据格式:X.XXX 数据长度:2
    float CXiangPowerFactor;// C相功率因数,单位:?o,精度:0.001 标识码:B650 数据格式:X.XXX 数据长度:2

    float     fRatedAppliedPower;  // 额定视在功率
    float     fARatedCur;     // A相额定电流
    float     fBRatedCur;     // B相额定电流
    float     fCRatedCur;     // C相额定电流
    float     fAXiangTemp;    // A相温度
    float     fBXiangTemp;    // B相温度
    float     fCXiangTemp;    // C相温度

    float totalVisualPower; // 总视在功率
    float AXiangVisualPower;// A相视在功率
    float BXiangVisualPower;// B相视在功率
    float CXiangVisualPower;// C相视在功率

    float freq;             // 频率

    quint16 usDevTemp[50];
    float   fDevTemp[50];

    quint16   dPT;          // 小数点U DPT
    quint16   dCT;          // 小数点I DCT
    quint16   dPQ;          // 小数点PQ DPQ
    quint16   symbolPQ;

    quint16   pt;               // 电压变比
    quint16   ct;               // 电流变比

    float     fSetATargetCur;     // 设置A相目标电流
    float     fSetBTargetCur;     // 设置B相目标电流
    float     fSetCTargetCur;     // 设置C相目标电流
};

#endif //TRANS_DATA_H
